package org.yzhzc.friend.domain.exam.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.time.LocalDateTime;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * 考试/竞赛信息视图对象（VO）
 */
@Data // Lombok 注解，自动生成 getter、setter、toString、equals 和 hashCode 方法
public class ExamVO {

    /**
     * 考试/竞赛的唯一标识 ID
     * 使用 @JsonSerialize(using = ToStringSerializer.class) 注解，
     * 将 Long 类型的 examId 序列化为字符串，避免前端 JavaScript 处理大数时丢失精度。
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examId;

    /**
     * 竞赛标题
     */
    private String title;

    /**
     * 考试/竞赛的开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /**
     * 考试/竞赛的结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    /**
     * 是否已报名
     */
    private boolean enter = false;
}
